

# 319. 灯泡开关
#
# 初始时有 n 个灯泡处于关闭状态。第一轮，你将会打开所有灯泡。接下来的第二轮，你将会每两个灯泡关闭第二个。
#
# 第三轮，你每三个灯泡就切换第三个灯泡的开关（即，打开变关闭，关闭变打开）。
#
# 第 i 轮，你每 i 个灯泡就切换第 i 个灯泡的开关。直到第 n 轮，你只需要切换最后一个灯泡的开关。
#
# 找出并返回 n 轮后有多少个亮着的灯泡。

# 输入：n = 3
# 输出：1
# 解释：
# 初始时, 灯泡状态 [关闭, 关闭, 关闭].
# 第一轮后, 灯泡状态 [开启, 开启, 开启].
# 第二轮后, 灯泡状态 [开启, 关闭, 开启].
# 第三轮后, 灯泡状态 [开启, 关闭, 关闭].
#
# 你应该返回 1，因为只有一个灯泡还亮着。

# 对于第 kk 个灯泡，它被切换的次数恰好就是 k 的约数个数。
# 如果 k 有偶数个约数，那么最终第 k 个灯泡的状态为暗；
# 如果 k 有奇数个约数，那么最终第 k 个灯泡的状态为亮。
#
# 如果k是完全平方数，即4，16，那么k的个数就是奇数。


def bulbSwitch(self, n: int) -> int:
    return int(sqrt(n))